#include <iostream>
#include <string>

/**
 * @brief 
 * 
 * @param p 常量型整型指针 
 */
void print1(const int *p)
{
    std::cout << *p << std::endl;
}
/**
 * @brief 
 * 
 * @param p 常量整型指针 
 * @param sz 数组的容量
 */
void print2(const int *p, const int sz)
{
    int i = 0;
    while(i != sz)
    {
        std::cout << *p++ << std::endl;
        ++i;
    }
}
/**
 * @brief 
 * 
 * @param begin 数组的首边界
 * @param end 数组的尾边界
 */
void print3(const int *begin, const int *end)
{
    for(auto q = begin; q != end; ++q)
    {
        std::cout << *q << std::endl;
    }
}
/**
 * @brief 测试 print 不同版本
 * 
 * @return int 
 */
int main()
{
    int i = 0, j[2] = {0, 1};
    print1(&i);
    print1(j);
    print2(&i, 1);
    // 计算得到数组 j 的容量
    print2(j, sizeof(j) / sizeof(*j));
    auto b = std::begin(j);
    auto e = std::end(j);
    print3(b, e);
    return 0;
}